SMAHA04060_처방관리[일반건진].xrw 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHA04050.xrw
  4. * 설 명 : 처방관리
  5. * 설 계 자 : 손주연
  6. * 작 성 자 : 손주연
  7. * 작 성 일 : 2007.06.11
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>처방관리</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <histlst>
  20. <item>
  21. <orddd/>
  22. <cmpynm/>
  23. <pkgnm/>
  24. <statflag/>
  25. <cmpyflag/>
  26. <lastupdtrid/>
  27. <lastupdtdt/>
  28. <rsrvdd/>
  29. <rsrvno/>
  30. <pkgcd/>
  31. <healexamflag/>
  32. <healexamdetlflag/>
  33. <cmpycd/>
  34. <conseq/>
  35. <healexamplacecd/>
  36. </item>
  37. </histlst>
  38. <info>
  39. <patinfo>
  40. <item>
  41. <pid/>
  42. <rgstno1/>
  43. <rgstno2/>
  44. <hngnm/>
  45. <engnm/>
  46. <sex/>
  47. <age/>
  48. <brthdd/>
  49. <zipcd11/>
  50. <zipcd12/>
  51. <addr1/>
  52. <detladdr1/>
  53. <mpphon/>
  54. <telno/>
  55. <emailid/>
  56. <emailtype/>
  57. <healexampid/>
  58. <emailkind/>
  59. <zipcd21/>
  60. <zipcd22/>
  61. <addr2/>
  62. <detladdr2/>
  63. <psptno/>
  64. <brthareacnts/>
  65. <pidcretfg/>
  66. <zipcdseq1/>
  67. <zipcdseq2/>
  68. <clntgrde/>
  69. <patremcnts/>
  70. <choiflag/>
  71. </item>
  72. </patinfo>
  73. <ordinfo>
  74. <ordlst>
  75. <sel/>
  76. <dcflag/>
  77. <testflag/>
  78. <uncocd/>
  79. <testcd/>
  80. <testnm/>
  81. <dcynflag/>
  82. <scoreamt/>
  83. <prcpexecdeptcd/>
  84. <lastupdtrid/>
  85. <lastupdtdt/>
  86. <prcpdd/>
  87. <prcpno/>
  88. <m/>
  89. <rcptstat/>
  90. <calcscorcd/>
  91. <grupflag/>
  92. <execprcpuniqno/>
  93. </ordlst>
  94. <info>
  95. <acptdesc/>
  96. <dcamt/>
  97. <selamt/>
  98. <cmpyaddamt/>
  99. <addamt/>
  100. </info>
  101. </ordinfo>
  102. </info>
  103. </main>
  104. <send>
  105. <saveordcd/>
  106. <srchhealexamdetlflag/>
  107. <srchpid/>
  108. <srchhealexamflag/>
  109. <srchinstcd/>
  110. <srchstatflag/>
  111. <srchrsrvdd/>
  112. <srchrsrvno/>
  113. <srchorddd/>
  114. <srchhopedd/>
  115. <srchcretno/>
  116. <srchorddeptcd/>
  117. <srchchk/>
  118. <save>
  119. <healexamflag/>
  120. <healexamdetlflag/>
  121. <rsrvdd/>
  122. <rsrvno/>
  123. <pid/>
  124. <orddd/>
  125. <cretno/>
  126. <uncocd/>
  127. <disccd/>
  128. <orddeptcd/>
  129. <orddrid/>
  130. <instcd/>
  131. <saveordlst/>
  132. </save>
  133. <saveinfo>
  134. <savelist/>
  135. </saveinfo>
  136. </send>
  137. <send1>
  138. <healexamflag/>
  139. <rsrvdd/>
  140. <rsrvno/>
  141. <testflag/>
  142. <testcd/>
  143. <cmpyflag/>
  144. <age/>
  145. <cmpycd/>
  146. <conseq/>
  147. <conhistseq/>
  148. <statflag/>
  149. </send1>
  150. <send2>
  151. <popchk/>
  152. </send2>
  153. <price>
  154. <dangainfo>
  155. <danga/>
  156. </dangainfo>
  157. </price>
  158. <init>
  159. <baseinfo>
  160. <uncocdlst>
  161. </uncocdlst>
  162. <clntgrdlst/>
  163. <rsrvflaglst/>
  164. <rsltcnstflaglst/>
  165. <choiflaglst/>
  166. <emaillst/>
  167. <hedetlflaglst/>
  168. <statlst/>
  169. <relacdlst/>
  170. <pamcdlst>
  171. <disccdlst>
  172. <item>
  173. <cd/>
  174. <nm/>
  175. </item>
  176. </disccdlst>
  177. <uncocdlst>
  178. <item>
  179. <cd/>
  180. <nm/>
  181. </item>
  182. </uncocdlst>
  183. </pamcdlst>
  184. <testflag/>
  185. <ordstatlst>
  186. <M0011/>
  187. </ordstatlst>
  188. <rcptstatlst/>
  189. <choiflaglst/>
  190. </baseinfo>
  191. <dept_info>
  192. <initprcpexecdeptcd>
  193. <prcpexecdeptcdid/>
  194. <prcpexecdeptcdnm/>
  195. </initprcpexecdeptcd>
  196. </dept_info>
  197. </init>
  198. <hidden>
  199. </hidden>
  200. <temp>
  201. <patinfo>
  202. <item/>
  203. </patinfo>
  204. <templst/>
  205. <choiflagchangeyn/>
  206. </temp>
  207. <temp1>
  208. <test>
  209. <testcd/>
  210. <pkgcd/>
  211. </test>
  212. </temp1>
  213. <choitest/>
  214. </root>
  215. </instance>
  216. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  217. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  218. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  219. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  220. <script type="javascript" src="../../../ast/healthexamrsrvacptweb/js/AHA.js"/>
  221. <script type="javascript" ev:event="xforms-ready">
  222. <![CDATA[
  223. fInitBaseInfo();
  224. fInitOrdInfo(true);
  225. if( checkOpener() ){
  226. model.setValue(cmb_srchhealexamdetlflag.attribute("ref") , opener.javascript.getParameter("SMAHA00700_PARAM1"));
  227. ipt_pid.currentText = opener.javascript.getParameter("SMAHA00700_PARAM2") ;
  228. fGetPatInfo(2);
  229. btn_search.dispatch("DOMActivate");
  230. }
  231. submit("TRAEB00205");
  232. model.setfocus("grd_ordlst");
  233. ]]>
  234. </script>
  235. <submission id="TRZBC00101"/>
  236. <submission id="TRAHA04011" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/patinfo"/>
  237. <submission id="TRAHA00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/baseinfo/pamcdlst"/>
  238. <submission id="TRAHA00106" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/histlst"/>
  239. <submission id="TRAHA04061" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/info/ordinfo"/>
  240. <submission id="TRAHA04052" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send1" replace="instance" resultref="/root/price"/>
  241. <bind id="bind_testcd" ref="/root/main/info/ordinfo/ordlst/testcd" readonly="../prcpno!=''"/>
  242. <bind id="bind_uncocd" ref="/root/main/info/ordinfo/ordlst/uncocd" readonly="../prcpno!=''"/>
  243. <bind id="bind_testflag" ref="/root/main/info/ordinfo/ordlst/testflag" readonly="../prcpno!=''"/>
  244. <bind id="bind_dc" ref="/root/main/info/ordinfo/ordlst/dcflag" readonly="../prcpno=''"/>
  245. <submission id="TXAHA04051" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" replace="instance" resultref="/root/hidden"/>
  246. <submission id="TXAHA00702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/saveinfo" replace="instance" resultref="/root/hidden"/>
  247. <submission id="TXAHA02101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/rcptinfo/hidden"/>
  248. <submission id="TXAHA02102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/rcptinfo/hidden"/>
  249. <submission id="TRAHA02105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/rcptno_out"/>
  250. <submission id="TRAHA00013" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/test" replace="instance" resultref="/root/tmp"/>
  251. <submission id="TRAEB00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/globalinstance" replace="instance" resultref="/root/init/dept_info"/>
  252. </model>
  253. <script type="javascript">
  254. <![CDATA[
  255. var col_calcflag = 3;
  256. var col_uncocd = 4;
  257. var col_prcpcd = 5;
  258. var col_prcpnm = 6;
  259. var col_scoramt = 8;
  260. var col_execdept = 9;
  261. /**=============================================================================================
  262. * 기본정보 가져오기.
  263. * 건진구분, 건진상태구분, 청구유형, 처방구분(P/A/S)을 가져온다.
  264. *=============================================================================================*/
  265. function fInitBaseInfo(){
  266. //건진상세구분 , 상태구분, 처방구분 ,
  267. var vHealExamFg = fGetHealExamFlag();
  268. var sDetlFg = "";
  269. if( vHealExamFg == "C" ){
  270. zbcfGetCodeList( new Array("A0069", "A0107", "A0117", "M0011", "P0030" , "A0116"),
  271. new Array("/root/init/baseinfo/hedetlflaglst"
  272. , "/root/init/baseinfo/statlst"
  273. ,"/root/init/baseinfo/testflag"
  274. ,"/root/init/baseinfo/ordstatlst"
  275. ,"/root/init/baseinfo/rcptstatlst"
  276. , "/root/init/baseinfo/choiflaglst" ) );
  277. sDetlFg = "/root/init/baseinfo/hedetlflaglst/A0069";
  278. }
  279. else {
  280. zbcfGetCodeList( new Array("A0070", "A0107", "A0117", "M0011", "P0030"),
  281. new Array("/root/init/baseinfo/hedetlflaglst"
  282. , "/root/init/baseinfo/statlst"
  283. ,"/root/init/baseinfo/testflag"
  284. ,"/root/init/baseinfo/ordstatlst"
  285. ,"/root/init/baseinfo/rcptstatlst") );
  286. sDetlFg = "/root/init/baseinfo/hedetlflaglst/A0070";
  287. }
  288. cmb_srchhealexamdetlflag.choices.itemset.attribute("nodeset") = sDetlFg ;
  289. submit("TRZBC00101");
  290. model.setValue("/root/send/srchinstcd", getUserInfo("posinstcd") );
  291. submit("TRAHA00104");
  292. var nodelist = instance1.selectNodes(sDetlFg);
  293. if( nodelist.length > 0 ){
  294. if( nodelist.length == 1) {
  295. cmb_srchhealexamdetlflag.value = model.getValue(sDetlFg + "/cdid");
  296. }
  297. else {
  298. //cmb_srchhealexamdetlflag.value = model.getValue(sDetlFg + "[1]/cdid");
  299. cmb_srchhealexamdetlflag.value = "G01";
  300. }
  301. }
  302. model.setFocus("ipt_pid");
  303. model.refresh();
  304. }
  305. /**=============================================================================================
  306. * 처방 초기화
  307. *bAll : 전체 초기화(true)_건진이력포함, 처방정보만 초기화(false)
  308. *=============================================================================================*/
  309. function fInitOrdInfo(bAll ){
  310. if( bAll ) {
  311. model.removeNodeset("/root/main/histlst/item" );
  312. }
  313. model.setValue(tar_desc.attribute("ref"), "")
  314. model.resetInstanceNode("/root/main/ordinfo");
  315. model.removeNodeset(grd_ordlst.nodeset);
  316. model.refresh();
  317. }
  318. /**=============================================================================================
  319. @desc : 건진접수내역가져오기
  320. @param : 건진구분, 등록번호, 진료일자
  321. *=============================================================================================*/
  322. function fGetHistList (){
  323. var vPid = model.getValue("/root/main/info/patinfo/item/pid");
  324. if(vPid == "" ){
  325. messageBox("환자ID를 입력하세요", "E999");
  326. model.setFocus("ipt_pid");
  327. return ;
  328. }
  329. fInitOrdInfo(false);
  330. model.setValue("/root/send/srchhealexamflag", fGetHealExamFlag());
  331. model.setValue("/root/send/srchstatflag" , "C" );
  332. model.setValue("/root/send/srchpid" , vPid);
  333. openLoadingBar("건진 접수내역...") ;//처리중 화면을 오픈한다.
  334. submit("TRAHA00106");
  335. closeLoadingBar() ;//처리중 화면을 close한다.
  336. }
  337. /**=============================================================================================
  338. * 건진처방내역가져오기
  339. *건진구분, 등록번호, 진료일자
  340. *=============================================================================================*/
  341. function fGetOrdInfo(){
  342. model.removeNodeset(grd_ordlst.nodeset );
  343. var idx = grd_histlst.row;
  344. var idxs = grd_histlst.rows;
  345. if( idx < 1 ){
  346. if(idxs > 1) {
  347. grd_histlst.row = 1;
  348. idx = grd_histlst.row;
  349. }else {
  350. messageBox("건진이력항목을 선택하세요", "E999");
  351. return ;
  352. }
  353. }
  354. var statflag = model.getValue("/root/main/histlst/item[" + idx + "]/statflag");
  355. model.setValue("/root/send/srchhealexamflag" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/healexamflag") ); //건진구분
  356. model.setValue("/root/send/srchpid" , model.getValue(ipt_pid.attribute("ref") ) ); //등록번호
  357. model.setValue("/root/send/srchrsrvdd" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/rsrvdd") ); //건진예약등록일자
  358. model.setValue("/root/send/srchrsrvno" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/rsrvno") ); //건진예약등록번호
  359. //if(model.getValue("/root/main/histlst/item/statflag")=="C"){
  360. if (statflag == "C"){
  361. model.setValue("/root/send/srchorddd" , "");
  362. model.setValue("/root/send/srchhopedd" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/orddd") ); //진료일자
  363. }else{
  364. model.setValue("/root/send/srchorddd" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/orddd") ); //진료일자
  365. }
  366. model.setValue("/root/send/srchcretno" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/cretno") ); //원무생성번호
  367. model.setValue("/root/send/srchorddeptcd" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/srchorddept") ); //진료과-처방발생부서
  368. model.makeValue("/root/send/srchage" , model.getValue("/root/main/info/patinfo/item/age")); //나이
  369. model.makeValue("/root/send/sex" , model.getValue("/root/main/info/patinfo/item/sex")); //나이
  370. model.makeValue("/root/send/hopedd" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/hopedd") ); //진료일자
  371. model.makeValue("/root/send/cmpyflag" , model.getValue(grd_histlst.nodeset + "[" + idx + "]/cmpyflag") ); //단체구분
  372. submit("TRAHA04061");
  373. //grd_ordlst.sort(1, 3, grd_ordlst.rows - 1, 5) = "desc";
  374. //grd_ordlst.gridToInstance();
  375. if(statflag =="E" || statflag =="G" || statflag =="H" || statflag =="I"){
  376. btn_seladd.disabled = false;
  377. btn_save.disabled = false;
  378. for (var i = 1; i < grd_ordlst.rows; i ++){
  379. grd_ordlst.isReadOnly(i, 1) = false;
  380. grd_ordlst.isReadOnly(i, 2) = false;
  381. }
  382. }else{
  383. btn_seladd.disabled = true;
  384. btn_save.disabled = true;
  385. /*
  386. var k = 0;
  387. for (var i = 1; i < grd_ordlst.rows; i ++){
  388. grd_ordlst.isReadOnly(i, 1) = true;
  389. if (model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/rcptstat") == "000"){
  390. grd_ordlst.isReadOnly(i, 2) = false;
  391. k = k + 1;
  392. }else{
  393. grd_ordlst.isReadOnly(i, 2) = true;
  394. }
  395. }
  396. if (k == 0){
  397. btn_save.disabled = true;
  398. }else{
  399. btn_save.disabled = false;
  400. }
  401. */
  402. }
  403. /*
  404. for (var j = 1; j < grd_ordlst.rows; j ++){
  405. grd_ordlst.isReadOnly(j, 2) = false;
  406. }
  407. */
  408. button1.visible = false;
  409. var icnt = 0;
  410. if(statflag =="E" || statflag =="G" || statflag =="H" || statflag =="I"){
  411. for (var i = 1; i < grd_ordlst.rows; i ++){
  412. if (model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/rcptstat") == "000"){
  413. icnt = icnt + 1;
  414. }
  415. }
  416. if (icnt > 0){
  417. //2009-09-09 심승욱
  418. //공단의 경우 어떠한 경우에도 수납처리를 하지 못하도록 막는다.
  419. button1.visible = false;
  420. }else{
  421. button1.visible = false;
  422. }
  423. }
  424. model.refresh();
  425. }
  426. /**=============================================================================================
  427. * 추가검사 및 선택검사 금액 계산
  428. * 청구방법/처방구분/삭제여부 에 따른 금액 계산
  429. *=============================================================================================*/
  430. function fCalcOrdAmt(){
  431. var cnt = grd_ordlst.rows;
  432. if( cnt < 1) return ;
  433. var vDcAmt = model.getValue("/root/main/info/ordinfo/info/dcamt");
  434. if( vDcAmt == "" ) vDcAmt = "0";
  435. vDcAmt = parseInt(vDcAmt);
  436. var vAddAmt = model.getValue("/root/main/info/ordinfo/info/addamt");
  437. if( vAddAmt == "" ) vAddAmt = "0";
  438. vAddAmt = parseInt(vAddAmt);
  439. var vSelAmt = model.getValue("/root/main/info/ordinfo/info/selamt");
  440. if( vSelAmt == "" ) vSelAmt = "0";
  441. vSelAmt = parseInt(vSelAmt);
  442. var vCmpyAmt = model.getValue("/root/main/info/ordinfo/info/cmpyaddamt");
  443. if( vCmpyAmt == "" ) vCmpyAmt = "0";
  444. vCmpyAmt = parseInt(vCmpyAmt);
  445. var vTmpDc = 0;
  446. var vTmpSel = 0;
  447. var vTmpAdd = 0;
  448. var vTmpCmpy = 0;
  449. var vTmp = "";
  450. var vTmpAmt = 0;
  451. for ( var i = 1; i <= cnt ; i++){
  452. if( grd_ordlst.rowstatus(i) == 4 ) //dc
  453. {
  454. vTmp = grd_ordlst.valueMatrix(i, col_scoramt );
  455. if( vTmp == "" ) vTmp = "0";
  456. vTmpAmt = parseInt(vTmp);
  457. vTmpDc += vTmpAmt;
  458. vTmp = grd_ordlst.valueMatrix(i, col_calcflag ) ;
  459. if( vTmp = "A" ){
  460. vTmp = grd_ordlst.valueMatrix(i, col_uncocd ) ;
  461. if( vTmp== "V01" ) //개인
  462. {
  463. vTmpAdd -= vTmpAmt;
  464. }
  465. else
  466. if( (vTmp== "V02" ) || (vTmp == "V03" ) )//단체 , 개인/단체
  467. {
  468. vTmpCmpy -= vTmpAmt;
  469. }
  470. }
  471. else
  472. if( vTmp == "S" ){
  473. vTmpSel -= vTmpAmt ;
  474. }
  475. }
  476. else
  477. if( grd_ordlst.rowstatus(i) == 1 ) //insert
  478. {
  479. vTmp = grd_ordlst.valueMatrix(i, col_calcflag ) ;
  480. if( vTmp = "A" ){
  481. vTmp = grd_ordlst.valueMatrix(i, col_uncocd ) ;
  482. if( vTmp== "V01" ) //개인
  483. {
  484. vTmp = grd_ordlst.valueMatrix(i, col_scoramt );
  485. if( vTmp == "" ) vTmp = "0";
  486. vTmpAdd += parseInt(vTmp);
  487. }
  488. else
  489. if( (vTmp== "V02" ) || (vTmp == "V03" ) )//단체 , 개인/단체
  490. {
  491. vTmp = grd_ordlst.valueMatrix(i, col_scoramt );
  492. if( vTmp == "" ) vTmp = "0";
  493. vTmpCmpy += parseInt(vTmp);
  494. }
  495. }
  496. else
  497. if( vTmp = "S" ){
  498. vTmp = grd_ordlst.valueMatrix(i, col_scoramt );
  499. if( vTmp == "" ) vTmp = "0";
  500. vTmpSel += parseInt(vTmp);
  501. }
  502. }
  503. }
  504. model.setValue("/root/main/info/ordinfo/info/dcamt" , vDcAmt + vTmpDc);
  505. model.setValue("/root/main/info/ordinfo/info/addamt" , vAddAmt + vTmpAdd);
  506. model.setValue("/root/main/info/ordinfo/info/selamt" , vSelAmt + vTmpSel);
  507. model.setValue("/root/main/info/ordinfo/info/cmpyaddamt", vCmpyAmt + vTmpCmpy);
  508. opt_dcamt.refresh();
  509. opt_selamt.refresh();
  510. opt_addamt.refresh();
  511. opt_cmpyaddamt.refresh();
  512. }
  513. /**=============================================================================================
  514. * 처방저장
  515. *=============================================================================================*/
  516. function fSavePrcp(){
  517. if( messageBox("처방내역을 ", "Q002") != 6 ) return ;
  518. var chkchoiflagchangeyn = model.getValue("/root/temp/choiflagchangeyn") ;
  519. if(chkchoiflagchangeyn != "Y"){
  520. model.resetInstanceNode("/root/send/save");
  521. var nodeList = instance1.selectNodes(grd_ordlst.nodeset + "[sel='Y']");
  522. var updData = getGridUpdateData(grd_ordlst);
  523. var rCSV = "";
  524. if ( (nodeList.length < 1) || (updData == "" ) ){
  525. messageBox("저장할 데이터가 존재하지 않습니다.", "E999");
  526. return ;
  527. }
  528. }
  529. //rCSV = getNodeListCSV(nodeList);
  530. model.makeNode("/root/send/save/saveordlst");
  531. model.setValue("/root/send/save/saveordlst", updData);
  532. var idx = grd_histlst.row;
  533. if(chkchoiflagchangeyn == "Y"){idx = 1; }
  534. if( idx < 1 ){
  535. messageBox("건진이력을 .", "C002");
  536. return ;
  537. }
  538. var sNode = grd_histlst.nodeset + "[" + idx + "]/";
  539. model.makeNode("/root/send/save/healexamflag");
  540. model.makeNode("/root/send/save/healexamdetlflag");
  541. model.makeNode("/root/send/save/rsrvdd");
  542. model.makeNode("/root/send/save/rsrvno");
  543. model.makeNode("/root/send/save/pid");
  544. model.makeNode("/root/send/save/orddd");
  545. model.makeNode("/root/send/save/cretno");
  546. model.makeNode("/root/send/save/orddeptcd");
  547. model.makeNode("/root/send/save/orddrid");
  548. model.makeNode("/root/send/save/uncocd");
  549. model.makeNode("/root/send/save/disccd");
  550. model.makeNode("/root/send/save/instcd");
  551. model.makeNode("/root/send/save/sex");
  552. model.makeNode("/root/send/save/srchchk");
  553. model.makeNode("/root/send/save/hopedd");
  554. model.makeNode("/root/send/save/healexamplacecd");
  555. model.setValue("/root/send/save/healexamflag" ,fGetHealExamFlag());
  556. model.setValue("/root/send/save/healexamdetlflag" , model.getValue(cmb_srchhealexamdetlflag.attribute("ref") ) );
  557. model.setValue("/root/send/save/rsrvdd" , model.getValue( sNode + "rsrvdd") );
  558. model.setValue("/root/send/save/rsrvno" , model.getValue( sNode + "rsrvno"));
  559. model.setValue("/root/send/save/pid" , model.getValue(sNode + "pid"));
  560. model.setValue("/root/send/save/orddd" , model.getValue(sNode + "orddd"));
  561. model.setValue("/root/send/save/cretno" , model.getValue(sNode + "cretno"));
  562. model.setValue("/root/send/save/orddeptcd" , model.getValue(sNode + "orddeptcd"));
  563. model.setValue("/root/send/save/orddrid" , model.getValue(sNode + "orddrid"));
  564. model.setValue("/root/send/save/uncocd" , model.getValue(sNode + "uncocd"));
  565. model.setValue("/root/send/save/disccd" , model.getValue(sNode + "disccd"));
  566. model.setValue("/root/send/save/instcd" , getUserInfo("posinstcd") );
  567. model.setValue("/root/send/save/sex" , model.getValue("/root/main/info/patinfo/item/sex") );
  568. model.setValue("/root/send/save/srchchk" , model.getValue("/root/send/srchchk") );
  569. model.setValue("/root/send/save/hopedd" , model.getValue(sNode + "hopedd"));
  570. model.setValue("/root/send/save/healexamplacecd" , model.getValue(sNode + "healexamplacecd"));
  571. //패키지내 선택검사 변경 여부 및 값
  572. model.makeValue("/root/send/save/choiflag/choiflagchangeyn" , model.getValue("/root/temp/choiflagchangeyn") );
  573. model.makeValue("/root/send/save/choiflag/choiflag" , model.getValue("/root/main/info/patinfo/item/choiflag") );
  574. model.makeValue("/root/send/save/choiflag/choiValue" , model.getValue("/root/temp/save/choiflag/choiValue"));
  575. // 수납금액이 0로면 수납창을 뛰우지 않는다
  576. openLoadingBar("처방정보 저장중...") ;//처리중 화면을 오픈한다.
  577. var ret = submit("TXAHA04051") ;
  578. closeLoadingBar() ;//처리중 화면을 close한다.
  579. var statflag = model.getValue("/root/main/histlst/item[" + idx + "]/statflag");
  580. if (statflag == "C"){
  581. return;
  582. }
  583. var grdcnt = grd_ordlst.rows;
  584. var amtCheck = "1";
  585. for(i=0;i<=grdcnt;i++){
  586. if ((grd_ordlst.valueMatrix(i+1 , grd_ordlst.colRef("dcflag")) == "Y") && (grd_ordlst.valueMatrix(i+1, grd_ordlst.colRef("testflag")) != "P")){
  587. amtCheck = "2";
  588. break;
  589. }
  590. if ((grd_ordlst.valueMatrix(i+1 , grd_ordlst.colRef("sel")) == "Y") && (grd_ordlst.valueMatrix(i+1, grd_ordlst.colRef("testflag")) == "A")){
  591. amtCheck = "2";
  592. break;
  593. }
  594. }
  595. if(amtCheck=="2"){// 수가에 반영이 돼지 않는 항목이라면 수납화면을 뛰우지 않는다
  596. if( ret == true ){
  597. /*재계산*/
  598. model.makeNode("/root/send/srchjobflag" );
  599. model.makeNode("/root/send/srchrcptdd" );
  600. model.makeNode("/root/send/srchrcptno" );
  601. model.makeNode("/root/send/srchrcptseqno");
  602. if( ret == 1){
  603. if (model.getValue("/root/send2/popchk") == "Y"){
  604. ahafOpenRcpt2( model.getValue("/root/send/save/healexamflag")
  605. , model.getValue("/root/send/save/rsrvdd")
  606. , model.getValue("/root/send/save/rsrvno")
  607. , model.getValue("/root/send/save/pid")
  608. , model.getValue(sNode + "rcptstat")
  609. , model.getValue("/root/send/save/orddd") );
  610. }
  611. }
  612. }
  613. }else{
  614. messageBox("수납 되었습니다.", "E999");
  615. }
  616. }
  617. /**
  618. * 건진내역 계산
  619. 건진구분 :srchhealexamflag
  620. 예약일자 :srchrsrvdd
  621. 예약번호 :srchrsrvno
  622. 등록번호 :srchpid
  623. 기관코드 :srchinstcd
  624. */
  625. function fCalcAmt(vJobFlag, vHealFg, vRsrvDD, vRsrvNo, vPid, vInstcd ){
  626. model.makeNode("/root/send/srchjobflag" );
  627. model.makeNode("/root/send/srchrcptdd" );
  628. model.makeNode("/root/send/srchrcptno" );
  629. model.makeNode("/root/send/srchrcptseqno");
  630. var ret = -1;
  631. if( vHealFg == "" ) return ret;
  632. model.setValue("/root/send/srchhealexamflag", vHealFg );
  633. if( vPid == "" ) return ret;
  634. model.setValue("/root/send/srchpid", vPid );
  635. if( vRsrvDD== "" ) return ret;
  636. model.setValue("/root/send/srchrsrvdd", vRsrvDD );
  637. model.setValue("/root/send/srchrsrvno" , vRsrvNo );
  638. model.setValue("/root/send/srchinstcd" , getUserInfo("posinstcd"));
  639. model.setValue("/root/send/srchjobflag" ,vJobFlag);
  640. var sNd = "/root/temp/rcptinfo/hidden/opmi_out";
  641. model.resetInstanceNode(sNd);
  642. sNd = sNd + "/";
  643. openLoadingBar("수납예상내역 계산 중입니다..") ;//처리중 화면을 오픈한다.
  644. if( submit("TXAHA02101") == true ){
  645. model.setValue(opt_addamt.attribute("ref") , model.getValue( sNd + "opmi_addexamamt")); //추가검사금액
  646. model.setValue(opt_cmpyaddamt.attribute("ref") , model.getValue( sNd + "opmi_cmpyamt")); //단체부담금
  647. model.setValue(opt_dcamt.attribute("ref") , model.getValue( sNd + "opmi_rcptamt"));
  648. model.refresh();
  649. ret = 1;
  650. }
  651. closeLoadingBar() ;//처리중 화면을 close한다.
  652. return ret;
  653. }
  654. /*****************************************************************************************************************************************************
  655. * 추가한 처방코드의 중복 체크
  656. *****************************************************************************************************************************************************/
  657. function fDupCheck(vGrdObj , vTestCdCol ) {
  658. var chk_idx = vGrdObj.rows - 1;
  659. var vDesTestcd = vGrdObj.valueMatrix(chk_idx , vTestCdCol );
  660. for( var i = 1 ; i < chk_idx ; i++ ){
  661. vTestcd = model.getValue(vGrdObj.nodeSet + "[" + i + "]/testcd" );
  662. vTestnm = model.getValue(vGrdObj.nodeSet + "[" + i + "]/testnm" );
  663. if(vDesTestcd == vTestcd) {
  664. if( messageBox("중복되는 검사코드[" + vTestcd + " - " + vTestnm +"] 를 추가 ", "S001") != 6 ){
  665. vGrdObj.deleteRow(chk_idx);
  666. }
  667. break;
  668. }
  669. }
  670. }
  671. function GridTest(){
  672. model.removeNodeset("/root/temp1/test/choitest");
  673. var choiflag = model.getValue("/root/main/info/ordinfo/info/choiflag");
  674. var spkgcd = "";
  675. model.refresh();
  676. }
  677. function fPrcpDanga(){
  678. model.removeNodeset("/root/send1");
  679. model.makeValue("/root/send1/healexamflag", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/healexamflag"));
  680. model.makeValue("/root/send1/rsrvdd", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/rsrvdd"));
  681. model.makeValue("/root/send1/rsrvno", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/rsrvno"));
  682. model.makeValue("/root/send1/testflag", model.getValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/testflag"));
  683. model.makeValue("/root/send1/testcd", model.getValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/testcd"));
  684. model.makeValue("/root/send1/cmpyflag", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/cmpyflag"));
  685. model.makeValue("/root/send1/age", model.getValue("/root/main/info/patinfo/item/age"));
  686. model.makeValue("/root/send1/cmpycd", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/cmpycd"));
  687. model.makeValue("/root/send1/conseq", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/conseq"));
  688. model.makeValue("/root/send1/conhistseq", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/conhistseq"));
  689. model.makeValue("/root/send1/statflag", model.getValue("/root/main/histlst/item[" + grd_histlst.row + "]/statflag"));
  690. submit("TRAHA04052");
  691. var suncocd = model.getValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/scoreamt");
  692. model.makeValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/scoreamt", model.getValue("/root/price/dangainfo/danga"));
  693. model.refresh();
  694. }
  695. function ahafOpenRcpt2(vHealExamFlag, vRsrvDD, vRsrvNo, vPid, vRcptStat , vOrdDD ){
  696. clearParameter("SMAHC00100_PARAM_PID");
  697. clearParameter("SMAHC00100_PARAM_RSRVDD");
  698. clearParameter("SMAHC00100_PARAM_RSRVNO");
  699. clearParameter("SMAHC00100_PARAM_HEALEXAMFLAG" );
  700. setParameter("SMAHC00100_PARAM_PID", vPid);
  701. setParameter("SMAHC00100_PARAM_RSRVDD", vRsrvDD);
  702. setParameter("SMAHC00100_PARAM_RSRVNO", vRsrvNo);
  703. setParameter("SMAHC00100_PARAM_HEALEXAMFLAG", vHealExamFlag);
  704. setParameter("SMAHC00100_PARAM_ORDDD", vOrdDD);
  705. var sRcptStat = "" ;
  706. if( vRcptStat == "N" ){ //수납상태
  707. sRcptStat = "Y";
  708. }
  709. else {
  710. sRcptStat = "N";
  711. }
  712. setParameter("SMAHC00100_RTN", sRcptStat);
  713. modal("SMAHC00200");
  714. }
  715. ]]>
  716. </script>
  717. </xhtml:head>
  718. <xhtml:body guideline="1,1195;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  719. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  720. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:149px; height:14px; ">처방 관리</caption>
  721. </group>
  722. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  723. <output id="opt_dcamt" ref="/root/main/info/ordinfo/info/dcamt" class="output_fix" format="#,###" style="left:1075px; top:76px; width:116px; height:19px; text-align:right; "/>
  724. <output id="opt_cmpyaddamt" ref="/root/main/info/ordinfo/info/cmpyaddamt" class="output_fix" format="#,###" style="left:739px; top:76px; width:94px; height:19px; text-align:right; "/>
  725. <caption id="caption59" class="cell_1" style="left:460px; top:75px; width:89px; height:23px; vertical-align:middle; ">추가처방(개인)</caption>
  726. <caption id="caption5" class="cell_1" style="left:1013px; top:75px; width:59px; height:23px; vertical-align:middle; ">반환금액</caption>
  727. <output id="opt_addamt" ref="/root/main/info/ordinfo/info/addamt" class="output_fix" format="#,###" style="left:551px; top:76px; width:94px; height:19px; text-align:right; "/>
  728. <caption id="caption55" class="cell_1" style="left:648px; top:75px; width:89px; height:23px; vertical-align:middle; ">추가처방(단체)</caption>
  729. <caption id="caption76" class="cell_1" style="left:836px; top:75px; width:59px; height:23px; vertical-align:middle; ">선택검사</caption>
  730. <output id="opt_selamt" ref="/root/main/info/ordinfo/info/selamt" class="output_fix" format="#,###" style="left:898px; top:76px; width:111px; height:19px; text-align:right; "/>
  731. <group id="grp_sea" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  732. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  733. <caption id="caption2" class="search_name" style="left:275px; top:10px; width:86px; height:17px; ">등록번호 :</caption>
  734. <line id="line13" class="line_4" style="x1:1107px; y1:7px; x2:1107px; y2:29px; "/>
  735. <button id="btn_search" class="btn1_letter2" style="left:1123px; top:7px; width:56px; height:22px; ">
  736. <caption>조회</caption>
  737. <script type="javascript" ev:event="DOMActivate">
  738. <![CDATA[
  739. fGetHistList();
  740. fGetOrdInfo();
  741. // submit("TXAHA04002");
  742. GridTest();
  743. ]]>
  744. </script>
  745. </button>
  746. <input id="ipt_pid" ref="/root/main/info/patinfo/item/pid" class="input_search" style="left:364px; top:8px; width:90px; height:19px; ">
  747. <script type="javascript" ev:event="onkeyup">
  748. <![CDATA[
  749. if( event.keyCode == 13) {
  750. model.resetInstanceNode("/root/main/info/patinfo/item");
  751. fGetPatInfo(2);
  752. btn_search.dispatch("DOMActivate");
  753. //fGetHistList();
  754. /* model.setFocus(grd_histlst.row);
  755. fGetOrdInfo();*/
  756. }
  757. ]]>
  758. </script>
  759. </input>
  760. <button id="btn_srchpat" class="icon_search" style="left:459px; top:10px; width:16px; height:16px; ">
  761. <caption/>
  762. <script type="javascript" ev:event="DOMActivate">
  763. <![CDATA[
  764. fSearchPatInfo("SMAHA00100", "pid", ipt_pid.currentText , "Y", "/root/main/info/patinfo/item" ,"", "");
  765. if( model.getValue("/root/temp/okflag") == "ok" ){
  766. //fGetHistList();
  767. btn_search.dispatch("DOMActivate");
  768. }
  769. ]]>
  770. </script>
  771. </button>
  772. <select1 id="cmb_srchhealexamdetlflag" ref="/root/send/srchhealexamdetlflag" class="combo_search" appearance="minimal" style="left:90px; top:8px; width:170px; height:19px; ">
  773. <choices>
  774. <itemset nodeset="/root/init/baseinfo/hedetlflaglst/A0069">
  775. <label ref="cdnm"/>
  776. <value ref="cdid"/>
  777. </itemset>
  778. </choices>
  779. <script type="javascript" ev:event="xforms-select">
  780. <![CDATA[
  781. fGetHistList();
  782. ]]>
  783. </script>
  784. </select1>
  785. <caption id="caption7" class="search_name" style="left:5px; top:8px; width:86px; height:17px; ">건진구분 :</caption>
  786. <output id="opt_sex" ref="/root/main/info/patinfo/item/sex" class="output_fix" style="left:588px; top:8px; width:36px; height:19px; "/>
  787. <output id="opt_age" ref="/root/main/info/patinfo/item/age" class="output_fix" style="left:627px; top:8px; width:36px; height:19px; "/>
  788. <input id="ipt_pnm" ref="/root/main/info/patinfo/item/hngnm" class="input_search" style="left:480px; top:8px; width:105px; height:19px; ">
  789. <script type="javascript" ev:event="onkeyup">
  790. <![CDATA[
  791. if( event.keyCode == 13) {
  792. model.resetInstanceNode("/root/main/info/patinfo/item");
  793. fSearchPatInfo("SMAHA00100", "pnm", ipt_pnm.currentText , "Y", "/root/main/info/patinfo/item" ,"", "");
  794. //fGetHistList();
  795. btn_search.dispatch("DOMActivate");
  796. }
  797. ]]>
  798. </script>
  799. </input>
  800. <input id="ipt_rgstno1" ref="/root/main/info/patinfo/item/rgstno1" class="input_search" visibility="hidden" style="left:665px; top:8px; width:105px; height:19px; "/>
  801. <input id="ipt_rgstno2" ref="/root/main/info/patinfo/item/rgstno2" class="input_search" visibility="hidden" style="left:775px; top:8px; width:105px; height:19px; "/>
  802. </group>
  803. <caption id="caption3" class="tit_2" style="left:460px; top:55px; width:78px; height:13px; ">처방내역</caption>
  804. <line id="line2" class="line_1" style="x1:460px; y1:70px; x2:1195px; y2:70px; "/>
  805. <button id="btn_addord" class="btn2_letter3" visibility="hidden" style="left:825px; top:50px; width:53px; height:19px; ">
  806. <caption>행추가</caption>
  807. <script type="javascript" ev:event="DOMActivate">
  808. <![CDATA[
  809. grd_ordlst.addRow();
  810. grd_ordlst.col = col_prcpcd ;
  811. //grd_ordlst.editCell();
  812. ]]>
  813. </script>
  814. </button>
  815. <datagrid id="grd_ordlst" nodeset="/root/main/info/ordinfo/ordlst" caption="V^D/C^처방구분^청구방법^처방코드^처방명^단가^처방상태^처방일자^시행부서^묶음코드^수가코드^최종수정자^최종수정일시^처방번호^m^묶음검사구분^상태^caption1" colsep="^" colwidth="24, 29, 73, 82, 89, 205, 100, 58, 81, 112, 100, 100, 79, 117, 90, 39, 100, 100" ellipsis="true" explorerbar="sortshow" frozencols="5" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="50" rowsep="|" tooltip="true" style="left:460px; top:75px; width:735px; height:620px; ">
  816. <col checkvalue="Y,N" ref="sel" type="checkbox"/>
  817. <col checkvalue="Y,N" ref="dcflag" type="checkbox"/>
  818. <col disabled="true" ref="testflag" type="combo">
  819. <choices>
  820. <itemset nodeset="/root/init/baseinfo/testflag/A0117">
  821. <label ref="cdnm"/>
  822. <value ref="cdid"/>
  823. </itemset>
  824. </choices>
  825. </col>
  826. <col ref="uncocd" type="combo">
  827. <choices>
  828. <itemset nodeset="/root/init/baseinfo/pamcdlst/uncocdlst">
  829. <label ref="nm"/>
  830. <value ref="cd"/>
  831. </itemset>
  832. </choices>
  833. </col>
  834. <col ref="testcd" type="inputbutton"/>
  835. <col ref="testnm"/>
  836. <col disabled="true" ref="scoreamt" type="input" format="#,###" style="text-align:right; "/>
  837. <col disabled="true" ref="rcptstat" type="combo">
  838. <choices>
  839. <itemset nodeset="/root/init/baseinfo/ordstatlst/M0011">
  840. <label ref="cdnm"/>
  841. <value ref="cdid"/>
  842. </itemset>
  843. </choices>
  844. </col>
  845. <col ref="prcpdd" format="yyyy-mm-dd" style="text-align:center; "/>
  846. <col disabled="true" ref="prcpexecdeptcd" type="combo">
  847. <choices>
  848. <itemset nodeset="/root/init/dept_info/initprcpexecdeptcd">
  849. <label ref="prcpexecdeptcdnm"/>
  850. <value ref="prcpexecdeptcdid"/>
  851. </itemset>
  852. </choices>
  853. </col>
  854. <col ref="pkgcd"/>
  855. <col ref="calcscorcd"/>
  856. <col ref="lastupdtrid"/>
  857. <col ref="lastupdtdt" format="yyyy-mm-dd hh:nn:ss"/>
  858. <col ref="prcpno"/>
  859. <col ref="m" visibility="hidden"/>
  860. <col ref="grupflag" type="combo" visibility="hidden">
  861. <choices>
  862. <item>
  863. <label>묶음</label>
  864. <value>G</value>
  865. </item>
  866. <item>
  867. <label>패키지</label>
  868. <value>P</value>
  869. </item>
  870. </choices>
  871. </col>
  872. <col ref="dcynflag" visibility="hidden"/>
  873. <col ref="execprcpuniqno" visibility="hidden"/>
  874. <script type="javascript" ev:event="onbuttonclick">
  875. <![CDATA[
  876. if( grd_ordlst.col == col_prcpcd ) {
  877. var idx = grd_ordlst.row;
  878. if( idx < 1) return ;
  879. fGetPkgCd("SMAHA00100", "A", "N","cd" , grd_ordlst.labelMatrix(idx, col_prcpcd) , "" , "", grd_ordlst.nodeset + "[" + idx + "]" , "Y");
  880. fDupCheck(grd_ordlst , grd_ordlst.colRef("testcd"));
  881. fCalcOrdAmt();
  882. }
  883. ]]>
  884. </script>
  885. <script type="javascript" ev:event="onendedit">
  886. <![CDATA[
  887. if( grd_ordlst.col == col_prcpcd ) {
  888. var idx = grd_ordlst.row;
  889. if( idx < 1) return ;
  890. fGetPkgCd("SMAHA00100", "A", "N","cd" , grd_ordlst.labelMatrix(idx, col_prcpcd) , "" , "", grd_ordlst.nodeset + "[" + idx + "]" , "Y");
  891. fDupCheck(grd_ordlst , grd_ordlst.colRef("testcd"));
  892. fCalcOrdAmt();
  893. }
  894. ]]>
  895. </script>
  896. <script type="javascript" ev:event="xforms-value-changed">
  897. <![CDATA[
  898. if (grd_ordlst.colRef("testflag") == grd_ordlst.col){
  899. fPrcpDanga();
  900. }
  901. if (grd_ordlst.colRef("uncocd") == grd_ordlst.col){
  902. var suncocd = model.getValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/uncocd");
  903. if (suncocd == "V02"){
  904. var sdanga = parseFloat(model.getValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/scoreamt"));
  905. model.makeValue("/root/hidd/danga", sdanga);
  906. sdanga = parseInt(sdanga * 0.1);
  907. sdanga = sdanga * 10;
  908. model.setValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/scoreamt", sdanga);
  909. }else{
  910. var vCnt = getNodesetCount("/root/hidd/danga");
  911. if (vCnt > 0){
  912. model.setValue("/root/main/info/ordinfo/ordlst[" + grd_ordlst.row + "]/scoreamt", model.getValue("/root/hidd/danga"));
  913. }
  914. }
  915. }
  916. fCalcOrdAmt();
  917. if( grd_ordlst.col == 2 ){
  918. var i = grd_ordlst.row;
  919. if( i < 1) return ;
  920. var dcflag = model.getValue(grd_ordlst.nodeset + "[" + i + "]/dcflag");
  921. if( dcflag == "Y" ) {
  922. model.setValue(grd_ordlst.nodeset + "[" + i + "]/m", "d");
  923. model.setValue(grd_ordlst.nodeset + "[" + i + "]/sel", "Y");
  924. grd_ordlst.addStatus(i, "delete");
  925. }
  926. else {
  927. model.setValue(grd_ordlst.nodeset + "[" + i + "]/m", "u");
  928. grd_ordlst.removeStatus(i, "delete");
  929. }
  930. var spkgcd = model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/pkgcd");
  931. var stestflag = model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/testflag");
  932. var sprcpdd = model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/prcpdd");
  933. if (stestflag == "A"){
  934. if (dcflag == "Y"){
  935. if (spkgcd == "" || spkgcd == "-"){
  936. }else{
  937. for (var j = 1; j < grd_ordlst.rows; j ++){
  938. if (model.getValue("/root/main/info/ordinfo/ordlst[" + j + "]/pkgcd") == spkgcd && model.getValue("/root/main/info/ordinfo/ordlst[" + j + "]/prcpdd") == sprcpdd){
  939. model.setValue("/root/main/info/ordinfo/ordlst[" + j + "]/m", "d");
  940. model.setValue("/root/main/info/ordinfo/ordlst[" + j + "]/sel", "Y");
  941. model.setValue("/root/main/info/ordinfo/ordlst[" + j + "]/dcflag", "Y");
  942. grd_ordlst.isReadOnly(j, 2) = true;
  943. grd_ordlst.addStatus(j, "delete");
  944. }
  945. }
  946. }
  947. }else{
  948. if (spkgcd == "" || spkgcd == "-"){
  949. }else{
  950. for (var j = 1; j < grd_ordlst.rows; j ++){
  951. if (model.getValue("/root/main/info/ordinfo/ordlst[" + j + "]/pkgcd") == spkgcd && model.getValue("/root/main/info/ordinfo/ordlst[" + j + "]/prcpdd") == sprcpdd){
  952. model.setValue("/root/main/info/ordinfo/ordlst[" + j + "]/sel", "N");
  953. model.setValue("/root/main/info/ordinfo/ordlst[" + j + "]/dcflag", "N");
  954. grd_ordlst.removeStatus(j, "delete");
  955. grd_ordlst.isReadOnly(j, 2) = false;
  956. }
  957. }
  958. }
  959. }
  960. }
  961. grd_ordlst.refresh();
  962. }
  963. ]]>
  964. </script>
  965. <script type="javascript" ev:event="onkeydown">
  966. <![CDATA[
  967. var keyp = event.keyCode
  968. if(keyp == 113 ) {
  969. grd_ordlst.row = grd_ordlst.rows-1;
  970. }
  971. ]]>
  972. </script>
  973. <script type="javascript" ev:event="onclick">
  974. <![CDATA[
  975. if(!(grd_ordlst.row == 0 && grd_ordlst.col == 2)) return;
  976. var cnt = grd_ordlst.rows;
  977. if(model.getXPathValue("count(/root/main/info/ordinfo/ordlst[dcflag = 'Y'])") != model.getXPathValue("count(/root/main/info/ordinfo/ordlst)"))
  978. {
  979. for(var i = 1; i < cnt ; i++)
  980. {
  981. model.setValue(grd_ordlst.nodeset + "[" + i + "]/m", "d");
  982. model.setValue(grd_ordlst.nodeset + "[" + i + "]/sel", "Y");
  983. model.setValue(grd_ordlst.nodeset + "[" + i + "]/dcflag", "Y");
  984. grd_ordlst.addStatus(i, "delete");
  985. }
  986. }
  987. else
  988. {
  989. for(var i = 1; i < cnt ; i++)
  990. {
  991. model.setValue(grd_ordlst.nodeset + "[" + i + "]/m", "d");
  992. model.setValue(grd_ordlst.nodeset + "[" + i + "]/sel", "Y");
  993. model.setValue(grd_ordlst.nodeset + "[" + i + "]/dcflag", "Y");
  994. grd_ordlst.addStatus(i, "delete");
  995. }
  996. }
  997. ]]>
  998. </script>
  999. <script type="javascript" ev:event="onaftersort">
  1000. <![CDATA[
  1001. grd_ordlst.gridToInstance();
  1002. ]]>
  1003. </script>
  1004. </datagrid>
  1005. <button id="btn_delord" class="btn2_letter3" visibility="hidden" style="left:881px; top:50px; width:53px; height:19px; ">
  1006. <caption>행삭제</caption>
  1007. <script type="javascript" ev:event="DOMActivate">
  1008. <![CDATA[
  1009. //deleteSelectedRows(grd_ordlst, true);
  1010. var idx = grd_ordlst.row;
  1011. if(idx > 0) {
  1012. var rowStat = grd_ordlst.rowStatus(idx);
  1013. if(rowStat == 1 || rowStat == 3) {
  1014. grd_ordlst.deleteRow(idx);
  1015. }else {
  1016. model.setValue(grd_ordlst.nodeset + "[" + grd_ordlst.row + "]/m", "d");
  1017. model.setValue(grd_ordlst.nodeset + "[" + grd_ordlst.row + "]/addexamdel", "Y");
  1018. grd_ordlst.valueMatrix(idx , grd_ordlst.colRef("sel")) = 'Y';
  1019. grd_ordlst.valueMatrix(idx , grd_ordlst.colRef("dcflag")) = 'Y';
  1020. grd_ordlst.addStatus(grd_ordlst.row, "delete");
  1021. }
  1022. }
  1023. ]]>
  1024. </script>
  1025. </button>
  1026. <datagrid id="grd_histlst" nodeset="/root/main/histlst/item" caption="건진일자^단체명^패키지명^건진상태^수납상태^uncocd^disccd^healexamflag^healexamdetlflag^healexamplacecd^caption1^caption2" colsep="^" colwidth="71, 97, 101, 71, 74, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:5px; top:75px; width:450px; height:175px; ">
  1027. <col ref="hopedd" format="yyyy-mm-dd"/>
  1028. <col ref="cmpynm"/>
  1029. <col ref="pkgnm"/>
  1030. <col disabled="true" ref="statflag" type="combo">
  1031. <choices>
  1032. <itemset nodeset="/root/init/baseinfo/statlst/A0107">
  1033. <label ref="cdnm"/>
  1034. <value ref="cdid"/>
  1035. </itemset>
  1036. </choices>
  1037. </col>
  1038. <col disabled="true" ref="rcptstat" type="combo">
  1039. <choices>
  1040. <item>
  1041. <label>수납</label>
  1042. <value>Y</value>
  1043. </item>
  1044. <item>
  1045. <label>미계산</label>
  1046. <value>N</value>
  1047. </item>
  1048. <item>
  1049. <label>수납</label>
  1050. <value>X</value>
  1051. </item>
  1052. </choices>
  1053. </col>
  1054. <col ref="uncocd" visibility="hidden"/>
  1055. <col ref="disccd" visibility="hidden"/>
  1056. <col ref="healexamflag" visibility="hidden"/>
  1057. <col ref="healexamdetlflag" visibility="hidden"/>
  1058. <col ref="healexamplacecd" visibility="hidden"/>
  1059. <script type="javascript" ev:event="onclick">
  1060. <![CDATA[
  1061. fGetOrdInfo();
  1062. model.setfocus("grd_ordlst");
  1063. ]]>
  1064. </script>
  1065. </datagrid>
  1066. <caption id="caption1" class="tit_2" style="left:10px; top:55px; width:78px; height:14px; ">건진이력</caption>
  1067. <line id="line1" class="line_1" style="x1:5px; y1:70px; x2:455px; y2:70px; "/>
  1068. <caption id="caption4" class="tit_2" style="left:10px; top:255px; width:95px; height:14px; ">
  1069. <![CDATA[건진상세정보]]>
  1070. <script type="javascript" ev:event="ondblclick">
  1071. <![CDATA[
  1072. bool1.visible = true;
  1073. caption10.visible = true;
  1074. ]]>
  1075. </script>
  1076. </caption>
  1077. <line id="line3" class="line_1" style="x1:5px; y1:270px; x2:455px; y2:270px; "/>
  1078. <textarea id="tar_desc" ref="/root/main/info/ordinfo/info/acptdesc" disabled="true" style="left:5px; top:275px; width:450px; height:465px; "/>
  1079. <line id="line10" class="line_2" style="x1:455px; y1:100px; x2:1185px; y2:100px; "/>
  1080. <button id="btn_selprcpcd" class="btn2_letter4" visibility="hidden" style="left:995px; top:50px; width:64px; height:19px; ">
  1081. <caption>처방사전</caption>
  1082. <script type="javascript" ev:event="DOMActivate">
  1083. <![CDATA[
  1084. fGetPkgCd("SMAHA00100", "T", "Y","nm" , "" , "" , "", "/root/temp/templst", "Y");
  1085. fSetAddList(grd_ordlst , col_prcpcd , "/root/temp/templst/list", "Y");
  1086. grd_ordlst.row= grd_ordlst.rows -1;
  1087. grd_ordlst.editCell();
  1088. ]]>
  1089. </script>
  1090. </button>
  1091. <button id="btn_seladd" class="btn2_letter4" style="left:1128px; top:50px; width:64px; height:19px; ">
  1092. <caption>추가검사</caption>
  1093. <script type="javascript" ev:event="DOMActivate">
  1094. <![CDATA[
  1095. fGetPkgCd("SMAHA00100", "A", "Y","nm" , "" , "" , "", "/root/temp/templst", "Y");
  1096. fSetAddList(grd_ordlst , col_prcpcd , "/root/temp/templst/list", "Y","", model.getValue("/root/main/histlst/item/pkgcd"));
  1097. if (model.getValue("/root/temp/okflag") != ""){
  1098. fPrcpDanga();
  1099. grd_ordlst.row= grd_ordlst.rows -1;
  1100. grd_ordlst.topRow = grd_ordlst.row;
  1101. grd_ordlst.editCell();
  1102. model.makeValue("/root/send2/popchk", "Y");
  1103. }
  1104. model.refresh();
  1105. ]]>
  1106. </script>
  1107. </button>
  1108. <caption id="caption9" style="left:465px; top:710px; width:590px; height:15px; color:#ff0000; ">* 약처방 및 주사는 용법에 따라 취소 시점이 다르므로 삭제된 처방이 안보일 수 있음.</caption>
  1109. <datagrid id="datagrid1" nodeset="/root/temp1/test" visibility="hidden" caption="caption1^caption2" colsep="^" colwidth="100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:215px; top:215px; width:225px; height:310px; ">
  1110. <col ref="testcd"/>
  1111. <col ref="pkgcd"/>
  1112. </datagrid>
  1113. <bool id="bool1" visibility="hidden" checkvalue="Y,N" ref="/root/send/srchchk" style="left:1010px; top:720px; width:35px; height:20px; "/>
  1114. <caption id="caption10" visibility="hidden" style="left:1040px; top:720px; width:100px; height:20px; ">수납적용제외</caption>
  1115. </group>
  1116. <group id="grp_btn" style="left:0px; top:757px; width:1195px; height:27px; ">
  1117. <button id="btn_clear" class="btn4_letter3" style="left:1122px; top:5px; width:68px; height:22px; ">
  1118. <caption>초기화</caption>
  1119. <script type="javascript" ev:event="DOMActivate">
  1120. <![CDATA[
  1121. fGetHistList ();
  1122. ]]>
  1123. </script>
  1124. </button>
  1125. <button id="btn_save" class="btn4_letter2" style="left:1065px; top:5px; width:56px; height:22px; ">
  1126. <caption>저장</caption>
  1127. <script type="javascript" ev:event="DOMActivate">
  1128. <![CDATA[
  1129. fSavePrcp();
  1130. fGetOrdInfo();
  1131. GridTest();
  1132. var kk = 0;
  1133. for (var i = 1; i < grd_ordlst.rows; i++){
  1134. if (model.getValue("/root/main/info/ordinfo/ordlst[" + i + "]/rcptstat") >= "230"){
  1135. kk = kk + 1;
  1136. }
  1137. }
  1138. if (kk > 0) {
  1139. model.resetInstanceNode("/root/send/savelist");
  1140. var nodeList = instance1.selectNodes(grd_ordlst.nodeset + "[rcptstat='000' and testflag='S']");
  1141. var rCSV = getNodeListCSV(nodeList);
  1142. model.makeNode("/root/send/saveinfo/savelist");
  1143. model.setValue("/root/send/saveinfo/savelist" , rCSV);
  1144. if (submit("TXAHA00702")){
  1145. fGetOrdInfo();
  1146. GridTest();
  1147. }
  1148. }
  1149. ]]>
  1150. </script>
  1151. </button>
  1152. <button id="button1" class="btn4_letter4" visibility="hidden" style="left:980px; top:5px; width:80px; height:22px; ">
  1153. <caption>수납처리</caption>
  1154. <script type="javascript" ev:event="DOMActivate">
  1155. <![CDATA[
  1156. model.resetInstanceNode("/root/send/savelist");
  1157. var nodeList = instance1.selectNodes(grd_ordlst.nodeset + "[rcptstat='000']");
  1158. var rCSV = getNodeListCSV(nodeList);
  1159. model.makeNode("/root/send/saveinfo/savelist");
  1160. model.setValue("/root/send/saveinfo/savelist" , rCSV);
  1161. if (submit("TXAHA00702")){
  1162. fGetOrdInfo();
  1163. GridTest();
  1164. }
  1165. ]]>
  1166. </script>
  1167. </button>
  1168. </group>
  1169. <script type="javascript" ev:event="onkeydown">
  1170. <![CDATA[
  1171. var keyp = event.keyCode
  1172. if(keyp == 113 ) {
  1173. grd_ordlst.row = grd_ordlst.rows-1;
  1174. }
  1175. ]]>
  1176. </script>
  1177. </xhtml:body>
  1178. </xhtml:html>